     * 
     */
    /**
 * 
 */
/**
} 
     * 处理投诉
     * 发起投诉回访
     * 发送超时提醒
     * 发送投诉通知
     * 方案推荐
     * 分配投诉处理人
     * 分页查询投诉建议
     * 根据分类查询投诉
     * 更新投诉信息
    // ========================= 缓存管理 =========================
     * 获取处理人员绩效统计
     * 获取流程模板
     * 获取投诉处理流程
     * 获取投诉分类列表
     * 获取投诉回访记录
     * 获取投诉趋势分析
     * 获取投诉热点分析
     * 获取投诉统计信息
     * 获取投诉详情
     * 获取用户投诉列表
     * 批量发送超时提醒
     * 清除投诉相关缓存
     * 清除用户投诉缓存
     * 搜索解决方案
     * 提交回访结果
     * 提交投诉建议
     * 添加解决方案
     * 添加流程记录
    // ========================= 通知提醒管理 =========================
    // ========================= 统计分析 =========================
     * 投诉撤销
    // ========================= 投诉处理管理 =========================
    // ========================= 投诉分类管理 =========================
    // ========================= 投诉回访管理 =========================
 * 投诉建议Service接口
    // ========================= 投诉流程管理 =========================
    // ========================= 投诉提交管理 =========================
     * 投诉重开
     * 投诉转办
     * 投诉自动分类
    // ========================= 知识库管理 =========================
 * 专注于投诉建议管理，从物业管理模块拆分而来
 * @author Wu.Liang
    boolean addProcessRecord(Long complaintId, String processStep, String processResult, String processNote);
    boolean assignComplaintHandler(Long complaintId, Long handlerId);
    boolean handleComplaint(Long complaintId, ComplaintProcessDTO processDTO);
    boolean reopenComplaint(Long complaintId, String reopenReason);
    boolean sendComplaintNotification(Long complaintId, String notifyType, List<Long> targetUserIds);
    boolean sendTimeoutReminder(Long complaintId);
    boolean submitFollowupResult(Long followupId, Integer satisfactionRate, String feedback);
    boolean transferComplaint(Long complaintId, Long newHandlerId, String transferReason);
    boolean updateComplaint(Long complaintId, ComplaintDTO complaintDTO);
    boolean withdrawComplaint(Long complaintId, String withdrawReason);
    ComplaintStatisticsVO getComplaintStatistics(Long communityId, String startDate, String endDate);
    ComplaintVO getComplaintDetail(Long complaintId);
import com.smart.community.commons.base.IBaseService;
import com.smart.community.commons.result.PageResult;
import com.smart.community.complaint.dto.ComplaintDTO;
import com.smart.community.complaint.dto.ComplaintProcessDTO;
import com.smart.community.complaint.entity.Complaint;
import com.smart.community.complaint.vo.ComplaintStatisticsVO;
import com.smart.community.complaint.vo.ComplaintVO;
import java.util.List;
import java.util.Map;
    List<ComplaintVO> getUserComplaints(Long userId);
    List<Map<String, Object>> getComplaintCategories();
    List<Map<String, Object>> getComplaintFollowups(Long complaintId);
    List<Map<String, Object>> getComplaintProcess(Long complaintId);
    List<Map<String, Object>> getComplaintTrend(Long communityId, String period);
    List<Map<String, Object>> getHandlerPerformance(List<Long> handlerIds, String startDate, String endDate);
    List<Map<String, Object>> recommendSolutions(Long complaintId);
    List<Map<String, Object>> searchSolutions(String keyword, String categoryCode);
    List<String> getProcessTemplate(String categoryCode);
    Long addSolution(String title, String content, String categoryCode);
    Long initiateFollowup(Long complaintId, String followupType);
    Long submitComplaint(ComplaintDTO complaintDTO);
    Map<String, Integer> batchSendTimeoutReminder(Long communityId);
    Map<String, Object> getComplaintHotspots(Long communityId, String timeRange);
package com.smart.community.complaint.service;
    PageResult<ComplaintVO> getComplaintsByCategory(String categoryCode, ComplaintDTO complaintDTO);
    PageResult<ComplaintVO> pageComplaints(ComplaintDTO complaintDTO);
     * @param categoryCode 分类编码
     * @param categoryCode 投诉分类编码
     * @param communityId 社区ID
     * @param complaintDTO 查询条件
     * @param complaintDTO 更新数据
     * @param complaintDTO 投诉信息
     * @param complaintId 投诉ID
     * @param content 方案内容
     * @param description 投诉描述
     * @param endDate 结束日期
     * @param feedback 回访反馈
     * @param followupId 回访ID
     * @param followupType 回访类型：phone-电话，visit-上门，survey-问卷
     * @param handlerId 处理人ID
     * @param handlerIds 处理人员ID列表
     * @param keyword 关键词
     * @param newHandlerId 新处理人ID
     * @param notifyType 通知类型：submit-提交，process-处理，close-关闭
     * @param period 统计周期：month-月度，quarter-季度，year-年度
     * @param processDTO 处理信息
     * @param processNote 处理备注
     * @param processResult 处理结果
     * @param processStep 处理步骤
     * @param reopenReason 重开原因
     * @param satisfactionRate 满意度评分
     * @param startDate 开始日期
     * @param targetUserIds 目标用户ID列表
     * @param timeRange 时间范围：7d-近7天，30d-近30天，90d-近90天
     * @param title 方案标题
     * @param title 投诉标题
     * @param transferReason 转办原因
     * @param userId 用户ID
     * @param withdrawReason 撤销原因
public interface IComplaintService extends IBaseService<Complaint> {
     * @return 发送结果统计
     * @return 方案ID
     * @return 分类列表
     * @return 分页结果
     * @return 回访记录列表
     * @return 回访ID
     * @return 绩效统计数据
     * @return 解决方案列表
     * @return 流程记录列表
     * @return 流程模板
     * @return 趋势数据
     * @return 热点分析数据
     * @return 是否撤销成功
     * @return 是否处理成功
     * @return 是否发送成功
     * @return 是否分配成功
     * @return 是否更新成功
     * @return 是否提交成功
     * @return 是否添加成功
     * @return 是否重开成功
     * @return 是否转办成功
     * @return 统计信息
     * @return 投诉列表
     * @return 投诉详情
     * @return 投诉ID
     * @return 推荐方案列表
     * @return 推荐分类编码
 * @since 2025-06-26
    String autoClassifyComplaint(String title, String description);
 * @version 1.0.0
    void clearComplaintCache(Long communityId);
    void clearUserComplaintCache(Long userId);
